package cn.wqb.bpp.common.utils;

import java.security.MessageDigest;

public class MD5Utils {

    /**
     * 获取md5值(全小写)
     *
     * @param value 输入的字符串
     * @return
     */
    public static String getMD5(String value) {
        if (value != null) {
            try {
                MessageDigest messageDigest = MessageDigest.getInstance("md5");
                messageDigest.update(value.getBytes());
                return getFormattedText(messageDigest.digest());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    private static String getFormattedText(byte[] bytes) {
        int len = bytes.length;
        StringBuilder buf = new StringBuilder(len * 2);
        for (int j = 0; j < len; j++) {
            buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
            buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
        }
        return buf.toString();
    }

    private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

}
